package cn.drenal.capcap.service;

import cn.drenal.capcap.entity.SysAdmin;
import cn.drenal.capcap.entity.dto.AdminDTO;
import cn.drenal.capcap.entity.vo.AdminListVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 管理员服务接口
 */
public interface AdminService extends IService<SysAdmin> {
    /**
     * 创建管理员
     *
     * @param adminDTO 管理员信息
     * @return 创建结果
     */
    SysAdmin createAdmin(AdminDTO adminDTO);

    /**
     * 更新管理员信息
     *
     * @param id 管理员ID
     * @param adminDTO 管理员信息
     * @return 更新结果
     */
    SysAdmin updateAdmin(Long id, AdminDTO adminDTO);

    /**
     * 删除管理员
     *
     * @param id 管理员ID
     */
    void deleteAdmin(Long id);

    /**
     * 分页查询管理员列表
     *
     * @param page 分页参数
     * @param username 用户名（模糊查询）
     * @param nickname 昵称（模糊查询）
     * @param phone 手机号（模糊查询）
     * @return 管理员列表
     */
    Page<AdminListVO> getAdminList(Page<SysAdmin> page, String username, String nickname, String phone);

    /**
     * 根据ID查询管理员
     *
     * @param id 管理员ID
     * @return 管理员信息
     */
    SysAdmin getAdminById(Long id);

    /**
     * 修改管理员密码
     *
     * @param id 管理员ID
     * @param oldPassword 旧密码
     * @param newPassword 新密码
     */
    void updatePassword(Long id, String oldPassword, String newPassword);
}